<!doctype html>
<html>
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Markmap</title>
<style>
* {
  margin: 0;
  padding: 0;
}
html {
  font-family: ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji',
    'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
}
#mindmap {
  display: block;
  width: 100vw;
  height: 100vh;
}
.markmap-dark {
  background: #27272a;
  color: white;
}
</style>
<link rel="stylesheet" href="https://unpkg.com/markmap-toolbar@0.18.12/dist/style.css"><link rel="stylesheet" href="https://unpkg.com/@highlightjs/cdn-assets@11.11.1/styles/default.min.css">
</head>
<body>
<svg id="mindmap"></svg>
<script src="https://unpkg.com/d3@7.9.0/dist/d3.min.js"></script><script src="https://unpkg.com/markmap-view@0.18.12/dist/browser/index.js"></script><script src="https://unpkg.com/markmap-toolbar@0.18.12/dist/index.js"></script><script>(r => {
              setTimeout(r);
            })(function renderToolbar() {
  const {
    markmap,
    mm
  } = window;
  const {
    el
  } = markmap.Toolbar.create(mm);
  el.setAttribute('style', 'position:absolute;bottom:20px;right:20px');
  document.body.append(el);
})</script><script>((getMarkmap, getOptions, root2, jsonOptions) => {
              const markmap = getMarkmap();
              window.mm = markmap.Markmap.create(
                "svg#mindmap",
                (getOptions || markmap.deriveOptions)(jsonOptions),
                root2
              );
              if (window.matchMedia("(prefers-color-scheme: dark)").matches) {
                document.documentElement.classList.add("markmap-dark");
              }
            })(() => window.markmap,null,{"content":"","children":[{"content":".NET 8.0 &#x5b8c;&#x6574;&#x5b66;&#x4e60;&#x56fe;&#x8c31;","children":[{"content":"1. &#x57fa;&#x7840;&#x5165;&#x95e8;","children":[{"content":"1.1 &#x6838;&#x5fc3;&#x6982;&#x5ff5;","children":[{"content":"1.1.1 .NET&#x5e73;&#x53f0;&#x67b6;&#x6784;","children":[{"content":"1.1.1.1 &#x516c;&#x5171;&#x8bed;&#x8a00;&#x8fd0;&#x884c;&#x65f6;(CLR)","children":[{"content":"&#x5185;&#x5b58;&#x7ba1;&#x7406;(&#x5783;&#x573e;&#x56de;&#x6536;)","children":[],"payload":{"tag":"li","lines":"10,11"}},{"content":"&#x5373;&#x65f6;&#x7f16;&#x8bd1;(JIT)","children":[],"payload":{"tag":"li","lines":"11,12"}},{"content":"&#x7c7b;&#x578b;&#x5b89;&#x5168;&#x9a8c;&#x8bc1;","children":[],"payload":{"tag":"li","lines":"12,13"}},{"content":"&#x5f02;&#x5e38;&#x5904;&#x7406;&#x673a;&#x5236;","children":[],"payload":{"tag":"li","lines":"13,14"}},{"content":"&#x7ebf;&#x7a0b;&#x7ba1;&#x7406;","children":[],"payload":{"tag":"li","lines":"14,15"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]&#x4e86;&#x89e3; .NET &#x516c;&#x5171;&#x8bed;&#x8a00;&#x8fd0;&#x884c;&#x65f6; (CLR): https://learn.microsoft.com/zh-cn/dotnet/standard/clr","children":[],"payload":{"tag":"li","lines":"15,16"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;].NET &#x4e2d;&#x7684;&#x5783;&#x573e;&#x56de;&#x6536;: https://learn.microsoft.com/zh-cn/dotnet/standard/garbage-collection/","children":[],"payload":{"tag":"li","lines":"16,17"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;].NET &#x4e2d;&#x7684;&#x7a0b;&#x5e8f;&#x96c6;&#x52a0;&#x8f7d;: https://learn.microsoft.com/zh-cn/dotnet/standard/assembly/load","children":[],"payload":{"tag":"li","lines":"17,19"}}],"payload":{"tag":"h6","lines":"8,9"}},{"content":"1.1.1.2 &#x57fa;&#x7840;&#x7c7b;&#x5e93;(BCL)","children":[{"content":"System&#x547d;&#x540d;&#x7a7a;&#x95f4;","children":[],"payload":{"tag":"li","lines":"21,22"}},{"content":"&#x96c6;&#x5408;&#x6846;&#x67b6;","children":[],"payload":{"tag":"li","lines":"22,23"}},{"content":"&#x6587;&#x4ef6;I/O&#x64cd;&#x4f5c;","children":[],"payload":{"tag":"li","lines":"23,24"}},{"content":"&#x7f51;&#x7edc;&#x901a;&#x4fe1;","children":[],"payload":{"tag":"li","lines":"24,25"}},{"content":"&#x5b89;&#x5168;&#x673a;&#x5236;","children":[],"payload":{"tag":"li","lines":"25,26"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;].NET API &#x6d4f;&#x89c8;&#x5668;: https://learn.microsoft.com/zh-cn/dotnet/api/","children":[],"payload":{"tag":"li","lines":"26,27"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;].NET &#x7c7b;&#x5e93;&#x6982;&#x8ff0;: https://learn.microsoft.com/zh-cn/dotnet/standard/class-library-overview","children":[],"payload":{"tag":"li","lines":"27,29"}}],"payload":{"tag":"h6","lines":"19,20"}}],"payload":{"tag":"h5","lines":"6,7"}},{"content":"1.1.2 C#&#x8bed;&#x8a00;&#x57fa;&#x7840;","children":[{"content":"1.1.2.1 &#x8bed;&#x8a00;&#x7279;&#x6027;","children":[{"content":"&#x5f3a;&#x7c7b;&#x578b;&#x7cfb;&#x7edf;","children":[],"payload":{"tag":"li","lines":"33,34"}},{"content":"&#x9762;&#x5411;&#x5bf9;&#x8c61;&#x7f16;&#x7a0b;","children":[],"payload":{"tag":"li","lines":"34,35"}},{"content":"&#x81ea;&#x52a8;&#x5185;&#x5b58;&#x7ba1;&#x7406;","children":[],"payload":{"tag":"li","lines":"35,36"}},{"content":"&#x5e73;&#x53f0;&#x65e0;&#x5173;&#x6027;","children":[],"payload":{"tag":"li","lines":"36,37"}},{"content":"&#x7248;&#x672c;&#x517c;&#x5bb9;&#x6027;","children":[],"payload":{"tag":"li","lines":"37,38"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]C# &#x5165;&#x95e8;: https://learn.microsoft.com/zh-cn/dotnet/csharp/tour-of-csharp/","children":[],"payload":{"tag":"li","lines":"38,39"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]C# &#x6307;&#x5357;: https://learn.microsoft.com/zh-cn/dotnet/csharp/","children":[],"payload":{"tag":"li","lines":"39,40"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]C# &#x7b80;&#x4ecb;&#x548c;&#x5165;&#x95e8;: https://learn.microsoft.com/zh-cn/dotnet/csharp/get-started/","children":[],"payload":{"tag":"li","lines":"40,41"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]C# &#x8bed;&#x8a00;&#x89c4;&#x8303;: https://learn.microsoft.com/zh-cn/dotnet/csharp/language-reference/language-specification/","children":[],"payload":{"tag":"li","lines":"41,43"}}],"payload":{"tag":"h6","lines":"31,32"}}],"payload":{"tag":"h5","lines":"29,30"}}],"payload":{"tag":"h4","lines":"4,5"}},{"content":"1.2 &#x5f00;&#x53d1;&#x73af;&#x5883;&#x642d;&#x5efa;","children":[{"content":"1.2.1 &#x5f00;&#x53d1;&#x5de5;&#x5177;","children":[{"content":"1.2.1.1 Visual Studio 2022","children":[{"content":"&#x793e;&#x533a;&#x7248;&#x5b89;&#x88c5;&#x914d;&#x7f6e;","children":[],"payload":{"tag":"li","lines":"49,50"}},{"content":"&#x5de5;&#x4f5c;&#x8d1f;&#x8f7d;&#x9009;&#x62e9;","children":[],"payload":{"tag":"li","lines":"50,51"}},{"content":"&#x6269;&#x5c55;&#x63d2;&#x4ef6;&#x7ba1;&#x7406;","children":[],"payload":{"tag":"li","lines":"51,52"}},{"content":"&#x8c03;&#x8bd5;&#x914d;&#x7f6e;","children":[],"payload":{"tag":"li","lines":"52,53"}},{"content":"&#x6027;&#x80fd;&#x5206;&#x6790;&#x5668;","children":[],"payload":{"tag":"li","lines":"53,54"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]&#x5b89;&#x88c5; Visual Studio: https://learn.microsoft.com/zh-cn/visualstudio/install/install-visual-studio","children":[],"payload":{"tag":"li","lines":"54,55"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]Visual Studio &#x6559;&#x7a0b;: https://learn.microsoft.com/zh-cn/visualstudio/get-started/","children":[],"payload":{"tag":"li","lines":"55,57"}}],"payload":{"tag":"h6","lines":"47,48"}},{"content":"1.2.1.2 Visual Studio Code","children":[{"content":"C# Dev Kit&#x5b89;&#x88c5;","children":[],"payload":{"tag":"li","lines":"59,60"}},{"content":".NET&#x6269;&#x5c55;&#x914d;&#x7f6e;","children":[],"payload":{"tag":"li","lines":"60,61"}},{"content":"&#x8c03;&#x8bd5;&#x73af;&#x5883;&#x642d;&#x5efa;","children":[],"payload":{"tag":"li","lines":"61,62"}},{"content":"&#x4ee3;&#x7801;&#x7247;&#x6bb5;&#x914d;&#x7f6e;","children":[],"payload":{"tag":"li","lines":"62,63"}},{"content":"&#x4e3b;&#x9898;&#x4e2a;&#x6027;&#x5316;","children":[],"payload":{"tag":"li","lines":"63,64"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]&#x5728; VS Code &#x4e2d;&#x4f7f;&#x7528; C#: https://learn.microsoft.com/zh-cn/dotnet/core/tutorials/with-visual-studio-code","children":[],"payload":{"tag":"li","lines":"64,65"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]VS Code &#x548c; .NET: https://learn.microsoft.com/zh-cn/dotnet/core/tutorials/with-visual-studio-code","children":[],"payload":{"tag":"li","lines":"65,67"}}],"payload":{"tag":"h6","lines":"57,58"}}],"payload":{"tag":"h5","lines":"45,46"}},{"content":"1.2.2 SDK&#x5b89;&#x88c5;&#x914d;&#x7f6e;","children":[{"content":"1.2.2.1 &#x73af;&#x5883;&#x51c6;&#x5907;","children":[{"content":"Windows&#x73af;&#x5883;&#x5b89;&#x88c5;","children":[],"payload":{"tag":"li","lines":"71,72"}},{"content":"Linux&#x73af;&#x5883;&#x5b89;&#x88c5;","children":[],"payload":{"tag":"li","lines":"72,73"}},{"content":"macOS&#x73af;&#x5883;&#x5b89;&#x88c5;","children":[],"payload":{"tag":"li","lines":"73,74"}},{"content":"&#x73af;&#x5883;&#x53d8;&#x91cf;&#x914d;&#x7f6e;","children":[],"payload":{"tag":"li","lines":"74,75"}},{"content":"&#x591a;&#x7248;&#x672c;&#x7ba1;&#x7406;","children":[],"payload":{"tag":"li","lines":"75,76"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]&#x5b89;&#x88c5; .NET SDK: https://learn.microsoft.com/zh-cn/dotnet/core/install/","children":[],"payload":{"tag":"li","lines":"76,77"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;].NET &#x7248;&#x672c;&#x652f;&#x6301;: https://learn.microsoft.com/zh-cn/dotnet/core/versions/","children":[],"payload":{"tag":"li","lines":"77,79"}}],"payload":{"tag":"h6","lines":"69,70"}}],"payload":{"tag":"h5","lines":"67,68"}}],"payload":{"tag":"h4","lines":"43,44"}},{"content":"1.3 &#x7b2c;&#x4e00;&#x4e2a;&#x5e94;&#x7528;&#x7a0b;&#x5e8f;","children":[{"content":"1.3.1 &#x63a7;&#x5236;&#x53f0;&#x5e94;&#x7528;","children":[{"content":"1.3.1.1 &#x9879;&#x76ee;&#x521b;&#x5efa;","children":[{"content":"<pre data-lines=\"87,92\"><code data-lines=\"87,92\">dotnet new<span class=\"hljs-built_in\"> console </span>-n MyFirstApp\ncd MyFirstApp\ndotnet <span class=\"hljs-built_in\">run</span>\n</code></pre>","children":[],"payload":{"tag":"pre","lines":"87,92"}}],"payload":{"tag":"h6","lines":"83,84"}},{"content":"1.3.1.2 &#x9879;&#x76ee;&#x7ed3;&#x6784;&#x89e3;&#x6790;","children":[{"content":"Program.cs&#x6587;&#x4ef6;&#x7ed3;&#x6784;","children":[],"payload":{"tag":"li","lines":"97,98"}},{"content":"&#x9879;&#x76ee;&#x6587;&#x4ef6;(.csproj)","children":[],"payload":{"tag":"li","lines":"98,99"}},{"content":"&#x4f9d;&#x8d56;&#x7ba1;&#x7406;","children":[],"payload":{"tag":"li","lines":"99,100"}},{"content":"&#x7f16;&#x8bd1;&#x8f93;&#x51fa;","children":[],"payload":{"tag":"li","lines":"100,101"}},{"content":"&#x8fd0;&#x884c;&#x914d;&#x7f6e;","children":[],"payload":{"tag":"li","lines":"101,102"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]&#x6559;&#x7a0b;&#xff1a;&#x521b;&#x5efa; .NET &#x63a7;&#x5236;&#x53f0;&#x5e94;&#x7528;&#x7a0b;&#x5e8f;: https://learn.microsoft.com/zh-cn/dotnet/core/tutorials/with-visual-studio-code","children":[],"payload":{"tag":"li","lines":"102,103"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;].NET CLI &#x6982;&#x8ff0;: https://learn.microsoft.com/zh-cn/dotnet/core/tools/","children":[],"payload":{"tag":"li","lines":"103,105"}}],"payload":{"tag":"h6","lines":"95,96"}}],"payload":{"tag":"h5","lines":"81,82"}}],"payload":{"tag":"h4","lines":"79,80"}}],"payload":{"tag":"h3","lines":"2,3"}},{"content":"2. &#x6838;&#x5fc3;&#x638c;&#x63e1;","children":[{"content":"2.1 C#&#x7f16;&#x7a0b;&#x8bed;&#x8a00;&#x6df1;&#x5165;","children":[{"content":"2.1.1 &#x8bed;&#x6cd5;&#x57fa;&#x7840;","children":[{"content":"2.1.1.1 &#x6570;&#x636e;&#x7c7b;&#x578b;&#x7cfb;&#x7edf;","children":[{"content":"&#x503c;&#x7c7b;&#x578b;&#x4e0e;&#x5f15;&#x7528;&#x7c7b;&#x578b;","children":[],"payload":{"tag":"li","lines":"113,114"}},{"content":"&#x5185;&#x7f6e;&#x6570;&#x636e;&#x7c7b;&#x578b;","children":[],"payload":{"tag":"li","lines":"114,115"}},{"content":"&#x81ea;&#x5b9a;&#x4e49;&#x7c7b;&#x578b;","children":[],"payload":{"tag":"li","lines":"115,116"}},{"content":"&#x7c7b;&#x578b;&#x8f6c;&#x6362;","children":[],"payload":{"tag":"li","lines":"116,117"}},{"content":"&#x53ef;&#x7a7a;&#x7c7b;&#x578b;","children":[],"payload":{"tag":"li","lines":"117,118"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]C# &#x7c7b;&#x578b;&#x7cfb;&#x7edf;: https://learn.microsoft.com/zh-cn/dotnet/csharp/fundamentals/types/","children":[],"payload":{"tag":"li","lines":"118,119"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]&#x503c;&#x7c7b;&#x578b;&#x548c;&#x5f15;&#x7528;&#x7c7b;&#x578b;: https://learn.microsoft.com/zh-cn/dotnet/csharp/language-reference/builtin-types/value-types","children":[],"payload":{"tag":"li","lines":"119,121"}}],"payload":{"tag":"h6","lines":"111,112"}},{"content":"2.1.1.2 &#x6d41;&#x7a0b;&#x63a7;&#x5236;","children":[{"content":"&#x6761;&#x4ef6;&#x8bed;&#x53e5;(if/else, switch)","children":[],"payload":{"tag":"li","lines":"123,124"}},{"content":"&#x5faa;&#x73af;&#x8bed;&#x53e5;(for, while, foreach)","children":[],"payload":{"tag":"li","lines":"124,125"}},{"content":"&#x8df3;&#x8f6c;&#x8bed;&#x53e5;(break, continue, return)","children":[],"payload":{"tag":"li","lines":"125,126"}},{"content":"&#x5f02;&#x5e38;&#x5904;&#x7406;(try/catch/finally)","children":[],"payload":{"tag":"li","lines":"126,127"}},{"content":"using&#x8bed;&#x53e5;","children":[],"payload":{"tag":"li","lines":"127,128"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]C# &#x8fd0;&#x7b97;&#x7b26;&#x548c;&#x8868;&#x8fbe;&#x5f0f;: https://learn.microsoft.com/zh-cn/dotnet/csharp/language-reference/operators/","children":[],"payload":{"tag":"li","lines":"128,130"}}],"payload":{"tag":"h6","lines":"121,122"}}],"payload":{"tag":"h5","lines":"109,110"}},{"content":"2.1.2 &#x9762;&#x5411;&#x5bf9;&#x8c61;&#x7f16;&#x7a0b;","children":[{"content":"2.1.2.1 &#x7c7b;&#x4e0e;&#x5bf9;&#x8c61;","children":[{"content":"&#x7c7b;&#x5b9a;&#x4e49;&#x4e0e;&#x5b9e;&#x4f8b;&#x5316;","children":[],"payload":{"tag":"li","lines":"134,135"}},{"content":"&#x6784;&#x9020;&#x51fd;&#x6570;&#x4e0e;&#x6790;&#x6784;&#x51fd;&#x6570;","children":[],"payload":{"tag":"li","lines":"135,136"}},{"content":"&#x65b9;&#x6cd5;&#x91cd;&#x8f7d;","children":[],"payload":{"tag":"li","lines":"136,137"}},{"content":"&#x5c5e;&#x6027;&#x4e0e;&#x7d22;&#x5f15;&#x5668;","children":[],"payload":{"tag":"li","lines":"137,138"}},{"content":"&#x9759;&#x6001;&#x6210;&#x5458;","children":[],"payload":{"tag":"li","lines":"138,139"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]&#x7c7b;&#x548c;&#x5bf9;&#x8c61;: https://learn.microsoft.com/zh-cn/dotnet/csharp/fundamentals/object-oriented/objects","children":[],"payload":{"tag":"li","lines":"139,140"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]&#x7ee7;&#x627f;: https://learn.microsoft.com/zh-cn/dotnet/csharp/fundamentals/object-oriented/inheritance","children":[],"payload":{"tag":"li","lines":"140,142"}}],"payload":{"tag":"h6","lines":"132,133"}},{"content":"2.1.2.2 &#x9762;&#x5411;&#x5bf9;&#x8c61;&#x7279;&#x6027;","children":[{"content":"&#x5c01;&#x88c5;(&#x8bbf;&#x95ee;&#x4fee;&#x9970;&#x7b26;)","children":[],"payload":{"tag":"li","lines":"144,145"}},{"content":"&#x7ee7;&#x627f;(&#x57fa;&#x7c7b;&#x6d3e;&#x751f;&#x7c7b;)","children":[],"payload":{"tag":"li","lines":"145,146"}},{"content":"&#x591a;&#x6001;(&#x865a;&#x65b9;&#x6cd5;&#x91cd;&#x5199;)","children":[],"payload":{"tag":"li","lines":"146,147"}},{"content":"&#x62bd;&#x8c61;&#x7c7b;&#x4e0e;&#x63a5;&#x53e3;","children":[],"payload":{"tag":"li","lines":"147,148"}},{"content":"&#x5bc6;&#x5c01;&#x7c7b;&#x4e0e;&#x65b9;&#x6cd5;","children":[],"payload":{"tag":"li","lines":"148,149"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]C# &#x4e2d;&#x7684;&#x9762;&#x5411;&#x5bf9;&#x8c61;&#x7f16;&#x7a0b;: https://learn.microsoft.com/zh-cn/dotnet/csharp/fundamentals/object-oriented/","children":[],"payload":{"tag":"li","lines":"149,151"}}],"payload":{"tag":"h6","lines":"142,143"}}],"payload":{"tag":"h5","lines":"130,131"}},{"content":"2.1.3 &#x9ad8;&#x7ea7;&#x8bed;&#x8a00;&#x7279;&#x6027;","children":[{"content":"2.1.3.1 &#x6cdb;&#x578b;&#x7f16;&#x7a0b;","children":[{"content":"&#x6cdb;&#x578b;&#x7c7b;&#x4e0e;&#x6cdb;&#x578b;&#x65b9;&#x6cd5;","children":[],"payload":{"tag":"li","lines":"155,156"}},{"content":"&#x7c7b;&#x578b;&#x7ea6;&#x675f;","children":[],"payload":{"tag":"li","lines":"156,157"}},{"content":"&#x534f;&#x53d8;&#x4e0e;&#x9006;&#x53d8;","children":[],"payload":{"tag":"li","lines":"157,158"}},{"content":"&#x6cdb;&#x578b;&#x96c6;&#x5408;","children":[],"payload":{"tag":"li","lines":"158,159"}},{"content":"&#x9ed8;&#x8ba4;&#x503c;&#x8868;&#x8fbe;&#x5f0f;","children":[],"payload":{"tag":"li","lines":"159,160"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]&#x6cdb;&#x578b;: https://learn.microsoft.com/zh-cn/dotnet/csharp/fundamentals/types/generics","children":[],"payload":{"tag":"li","lines":"160,162"}}],"payload":{"tag":"h6","lines":"153,154"}},{"content":"2.1.3.2 &#x59d4;&#x6258;&#x4e0e;&#x4e8b;&#x4ef6;","children":[{"content":"&#x59d4;&#x6258;&#x5b9a;&#x4e49;&#x4e0e;&#x4f7f;&#x7528;","children":[],"payload":{"tag":"li","lines":"164,165"}},{"content":"&#x533f;&#x540d;&#x65b9;&#x6cd5;","children":[],"payload":{"tag":"li","lines":"165,166"}},{"content":"Lambda&#x8868;&#x8fbe;&#x5f0f;","children":[],"payload":{"tag":"li","lines":"166,167"}},{"content":"&#x4e8b;&#x4ef6;&#x58f0;&#x660e;&#x4e0e;&#x8ba2;&#x9605;","children":[],"payload":{"tag":"li","lines":"167,168"}},{"content":"&#x4e8b;&#x4ef6;&#x8bbf;&#x95ee;&#x5668;","children":[],"payload":{"tag":"li","lines":"168,169"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]&#x59d4;&#x6258;: https://learn.microsoft.com/zh-cn/dotnet/csharp/programming-guide/delegates/","children":[],"payload":{"tag":"li","lines":"169,170"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]&#x4e8b;&#x4ef6;: https://learn.microsoft.com/zh-cn/dotnet/csharp/programming-guide/events/","children":[],"payload":{"tag":"li","lines":"170,172"}}],"payload":{"tag":"h6","lines":"162,163"}},{"content":"2.1.3.3 LINQ&#x6280;&#x672f;","children":[{"content":"&#x67e5;&#x8be2;&#x8868;&#x8fbe;&#x5f0f;&#x8bed;&#x6cd5;","children":[],"payload":{"tag":"li","lines":"174,175"}},{"content":"&#x65b9;&#x6cd5;&#x94fe;&#x5f0f;&#x8bed;&#x6cd5;","children":[],"payload":{"tag":"li","lines":"175,176"}},{"content":"LINQ to Objects","children":[],"payload":{"tag":"li","lines":"176,177"}},{"content":"LINQ to XML","children":[],"payload":{"tag":"li","lines":"177,178"}},{"content":"&#x81ea;&#x5b9a;&#x4e49;LINQ&#x63d0;&#x4f9b;&#x7a0b;&#x5e8f;","children":[],"payload":{"tag":"li","lines":"178,179"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]LINQ (&#x8bed;&#x8a00;&#x96c6;&#x6210;&#x67e5;&#x8be2;): https://learn.microsoft.com/zh-cn/dotnet/csharp/linq/","children":[],"payload":{"tag":"li","lines":"179,181"}}],"payload":{"tag":"h6","lines":"172,173"}},{"content":"2.1.3.4 &#x5f02;&#x6b65;&#x7f16;&#x7a0b;","children":[{"content":"async/await&#x5173;&#x952e;&#x5b57;","children":[],"payload":{"tag":"li","lines":"183,184"}},{"content":"Task&#x5e76;&#x884c;&#x5e93;","children":[],"payload":{"tag":"li","lines":"184,185"}},{"content":"&#x53d6;&#x6d88;&#x4ee4;&#x724c;","children":[],"payload":{"tag":"li","lines":"185,186"}},{"content":"&#x5f02;&#x6b65;&#x6d41;","children":[],"payload":{"tag":"li","lines":"186,187"}},{"content":"&#x503c;&#x4efb;&#x52a1;","children":[],"payload":{"tag":"li","lines":"187,188"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]&#x5f02;&#x6b65;&#x7f16;&#x7a0b;: https://learn.microsoft.com/zh-cn/dotnet/csharp/asynchronous-programming/","children":[],"payload":{"tag":"li","lines":"188,189"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]C# &#x9ad8;&#x7ea7;&#x4e3b;&#x9898;: https://learn.microsoft.com/zh-cn/dotnet/csharp/advanced/","children":[],"payload":{"tag":"li","lines":"189,191"}}],"payload":{"tag":"h6","lines":"181,182"}}],"payload":{"tag":"h5","lines":"151,152"}}],"payload":{"tag":"h4","lines":"107,108"}},{"content":"2.2 .NET&#x57fa;&#x7840;&#x7c7b;&#x5e93;","children":[{"content":"2.2.1 &#x96c6;&#x5408;&#x6846;&#x67b6;","children":[{"content":"2.2.1.1 &#x4e3b;&#x8981;&#x96c6;&#x5408;&#x7c7b;&#x578b;","children":[{"content":"List<t>&#x52a8;&#x6001;&#x6570;&#x7ec4;</t>","children":[],"payload":{"tag":"li","lines":"197,198"}},{"content":"Dictionary&lt;TKey,TValue&gt;&#x5b57;&#x5178;","children":[],"payload":{"tag":"li","lines":"198,199"}},{"content":"HashSet<t>&#x54c8;&#x5e0c;&#x96c6;&#x5408;</t>","children":[],"payload":{"tag":"li","lines":"199,200"}},{"content":"Queue<t>&#x961f;&#x5217;</t>","children":[],"payload":{"tag":"li","lines":"200,201"}},{"content":"Stack<t>&#x6808;</t>","children":[],"payload":{"tag":"li","lines":"201,202"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]&#x96c6;&#x5408;: https://learn.microsoft.com/zh-cn/dotnet/standard/collections/","children":[],"payload":{"tag":"li","lines":"202,204"}}],"payload":{"tag":"h6","lines":"195,196"}}],"payload":{"tag":"h5","lines":"193,194"}},{"content":"2.2.2 &#x6587;&#x4ef6;&#x4e0e;I/O&#x64cd;&#x4f5c;","children":[{"content":"2.2.2.1 &#x6587;&#x4ef6;&#x7cfb;&#x7edf;&#x64cd;&#x4f5c;","children":[{"content":"File&#x7c7b;&#x9759;&#x6001;&#x65b9;&#x6cd5;","children":[],"payload":{"tag":"li","lines":"208,209"}},{"content":"FileInfo&#x7c7b;&#x5b9e;&#x4f8b;&#x65b9;&#x6cd5;","children":[],"payload":{"tag":"li","lines":"209,210"}},{"content":"&#x76ee;&#x5f55;&#x64cd;&#x4f5c;","children":[],"payload":{"tag":"li","lines":"210,211"}},{"content":"&#x8def;&#x5f84;&#x64cd;&#x4f5c;","children":[],"payload":{"tag":"li","lines":"211,212"}},{"content":"&#x6587;&#x4ef6;&#x76d1;&#x63a7;","children":[],"payload":{"tag":"li","lines":"212,213"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]&#x6587;&#x4ef6;&#x548c;&#x6d41; I/O: https://learn.microsoft.com/zh-cn/dotnet/standard/io/","children":[],"payload":{"tag":"li","lines":"213,215"}}],"payload":{"tag":"h6","lines":"206,207"}}],"payload":{"tag":"h5","lines":"204,205"}},{"content":"2.2.3 &#x5e8f;&#x5217;&#x5316;&#x6280;&#x672f;","children":[{"content":"2.2.3.1 System.Text.Json","children":[{"content":"&#x5bf9;&#x8c61;&#x5e8f;&#x5217;&#x5316;","children":[],"payload":{"tag":"li","lines":"219,220"}},{"content":"&#x53cd;&#x5e8f;&#x5217;&#x5316;&#x914d;&#x7f6e;","children":[],"payload":{"tag":"li","lines":"220,221"}},{"content":"&#x81ea;&#x5b9a;&#x4e49;&#x8f6c;&#x6362;&#x5668;","children":[],"payload":{"tag":"li","lines":"221,222"}},{"content":"&#x6027;&#x80fd;&#x6700;&#x4f73;&#x5b9e;&#x8df5;","children":[],"payload":{"tag":"li","lines":"222,223"}},{"content":"&#x7248;&#x672c;&#x517c;&#x5bb9;&#x6027;","children":[],"payload":{"tag":"li","lines":"223,224"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]JSON &#x5e8f;&#x5217;&#x5316;&#x548c;&#x53cd;&#x5e8f;&#x5217;&#x5316;: https://learn.microsoft.com/zh-cn/dotnet/standard/serialization/system-text-json/overview","children":[],"payload":{"tag":"li","lines":"224,226"}}],"payload":{"tag":"h6","lines":"217,218"}}],"payload":{"tag":"h5","lines":"215,216"}},{"content":"2.2.4 &#x4f9d;&#x8d56;&#x6ce8;&#x5165;&#x7cfb;&#x7edf;","children":[{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;].NET &#x4e2d;&#x7684;&#x4f9d;&#x8d56;&#x5173;&#x7cfb;&#x6ce8;&#x5165;: https://learn.microsoft.com/zh-cn/dotnet/core/extensions/dependency-injection","children":[],"payload":{"tag":"li","lines":"228,230"}}],"payload":{"tag":"h5","lines":"226,227"}},{"content":"2.2.5 &#x914d;&#x7f6e;&#x7ba1;&#x7406;&#x7cfb;&#x7edf;","children":[{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;].NET &#x4e2d;&#x7684;&#x914d;&#x7f6e;: https://learn.microsoft.com/zh-cn/dotnet/core/extensions/configuration","children":[],"payload":{"tag":"li","lines":"232,234"}}],"payload":{"tag":"h5","lines":"230,231"}},{"content":"2.2.6 &#x65e5;&#x5fd7;&#x7cfb;&#x7edf;","children":[{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;].NET &#x4e2d;&#x7684;&#x65e5;&#x5fd7;&#x8bb0;&#x5f55;: https://learn.microsoft.com/zh-cn/dotnet/core/extensions/logging","children":[],"payload":{"tag":"li","lines":"236,238"}}],"payload":{"tag":"h5","lines":"234,235"}}],"payload":{"tag":"h4","lines":"191,192"}}],"payload":{"tag":"h3","lines":"105,106"}},{"content":"3. &#x4e13;&#x4e1a;&#x65b9;&#x5411;","children":[{"content":"3.1 Web&#x5f00;&#x53d1;(<a href=\"https://asp.net/\">ASP.NET</a> Core)","children":[{"content":"3.1.1 &#x57fa;&#x7840;&#x6982;&#x5ff5;","children":[{"content":"3.1.1.1 &#x4e2d;&#x95f4;&#x4ef6;&#x7ba1;&#x9053;","children":[{"content":"&#x8bf7;&#x6c42;&#x5904;&#x7406;&#x6d41;&#x7a0b;","children":[],"payload":{"tag":"li","lines":"246,247"}},{"content":"&#x4e2d;&#x95f4;&#x4ef6;&#x914d;&#x7f6e;","children":[],"payload":{"tag":"li","lines":"247,248"}},{"content":"&#x81ea;&#x5b9a;&#x4e49;&#x4e2d;&#x95f4;&#x4ef6;","children":[],"payload":{"tag":"li","lines":"248,249"}},{"content":"&#x7ba1;&#x9053;&#x5206;&#x652f;","children":[],"payload":{"tag":"li","lines":"249,250"}},{"content":"&#x7ec8;&#x7aef;&#x4e2d;&#x95f4;&#x4ef6;","children":[],"payload":{"tag":"li","lines":"250,251"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]<a href=\"https://asp.net/\">ASP.NET</a> Core &#x4e2d;&#x95f4;&#x4ef6;: https://learn.microsoft.com/zh-cn/aspnet/core/fundamentals/middleware/","children":[],"payload":{"tag":"li","lines":"251,252"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]<a href=\"https://asp.net/\">ASP.NET</a> Core &#x57fa;&#x7840;&#x77e5;&#x8bc6;: https://learn.microsoft.com/zh-cn/aspnet/core/fundamentals/","children":[],"payload":{"tag":"li","lines":"252,254"}}],"payload":{"tag":"h6","lines":"244,245"}}],"payload":{"tag":"h5","lines":"242,243"}},{"content":"3.1.2 Web API&#x5f00;&#x53d1;","children":[{"content":"3.1.2.1 &#x63a7;&#x5236;&#x5668;&#x8bbe;&#x8ba1;","children":[{"content":"ControllerBase&#x57fa;&#x7c7b;","children":[],"payload":{"tag":"li","lines":"258,259"}},{"content":"&#x52a8;&#x4f5c;&#x65b9;&#x6cd5;","children":[],"payload":{"tag":"li","lines":"259,260"}},{"content":"&#x8def;&#x7531;&#x6a21;&#x677f;","children":[],"payload":{"tag":"li","lines":"260,261"}},{"content":"&#x6a21;&#x578b;&#x7ed1;&#x5b9a;","children":[],"payload":{"tag":"li","lines":"261,262"}},{"content":"&#x52a8;&#x4f5c;&#x8fc7;&#x6ee4;&#x5668;","children":[],"payload":{"tag":"li","lines":"262,263"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]<a href=\"https://asp.net/\">ASP.NET</a> Core &#x4e2d;&#x7684;&#x63a7;&#x5236;&#x5668;: https://learn.microsoft.com/zh-cn/aspnet/core/mvc/controllers/","children":[],"payload":{"tag":"li","lines":"263,265"}}],"payload":{"tag":"h6","lines":"256,257"}},{"content":"3.1.2.2 RESTful&#x8bbe;&#x8ba1;","children":[{"content":"HTTP&#x65b9;&#x6cd5;&#x6620;&#x5c04;","children":[],"payload":{"tag":"li","lines":"267,268"}},{"content":"&#x72b6;&#x6001;&#x7801;&#x8fd4;&#x56de;","children":[],"payload":{"tag":"li","lines":"268,269"}},{"content":"HATEOAS&#x5b9e;&#x73b0;","children":[],"payload":{"tag":"li","lines":"269,270"}},{"content":"&#x7248;&#x672c;&#x63a7;&#x5236;&#x7b56;&#x7565;","children":[],"payload":{"tag":"li","lines":"270,271"}},{"content":"&#x8d85;&#x5a92;&#x4f53;&#x683c;&#x5f0f;","children":[],"payload":{"tag":"li","lines":"271,272"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]&#x521b;&#x5efa; Web API: https://learn.microsoft.com/zh-cn/aspnet/core/web-api/","children":[],"payload":{"tag":"li","lines":"272,274"}}],"payload":{"tag":"h6","lines":"265,266"}}],"payload":{"tag":"h5","lines":"254,255"}},{"content":"3.1.3 &#x9ad8;&#x7ea7;&#x4e3b;&#x9898;","children":[{"content":"3.1.3.1 &#x8eab;&#x4efd;&#x8ba4;&#x8bc1;&#x6388;&#x6743;","children":[{"content":"JWT&#x4ee4;&#x724c;&#x8ba4;&#x8bc1;","children":[],"payload":{"tag":"li","lines":"278,279"}},{"content":"&#x58f0;&#x660e;&#x57fa;&#x4e8e;&#x6388;&#x6743;","children":[],"payload":{"tag":"li","lines":"279,280"}},{"content":"&#x7b56;&#x7565;&#x6388;&#x6743;","children":[],"payload":{"tag":"li","lines":"280,281"}},{"content":"&#x89d2;&#x8272;&#x6388;&#x6743;","children":[],"payload":{"tag":"li","lines":"281,282"}},{"content":"&#x81ea;&#x5b9a;&#x4e49;&#x6388;&#x6743;&#x5904;&#x7406;&#x5668;","children":[],"payload":{"tag":"li","lines":"282,283"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]<a href=\"https://asp.net/\">ASP.NET</a> Core &#x5b89;&#x5168;&#x6027;: https://learn.microsoft.com/zh-cn/aspnet/core/security/","children":[],"payload":{"tag":"li","lines":"283,285"}}],"payload":{"tag":"h6","lines":"276,277"}},{"content":"3.1.3.2 &#x7f13;&#x5b58;&#x6280;&#x672f;","children":[{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]<a href=\"https://asp.net/\">ASP.NET</a> Core &#x4e2d;&#x7684;&#x7f13;&#x5b58;: https://learn.microsoft.com/zh-cn/aspnet/core/performance/caching/","children":[],"payload":{"tag":"li","lines":"287,289"}}],"payload":{"tag":"h6","lines":"285,286"}},{"content":"3.1.3.3 &#x540e;&#x53f0;&#x4efb;&#x52a1;","children":[{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]<a href=\"https://asp.net/\">ASP.NET</a> Core &#x4e2d;&#x7684;&#x540e;&#x53f0;&#x4efb;&#x52a1;: https://learn.microsoft.com/zh-cn/aspnet/core/fundamentals/host/hosted-services","children":[],"payload":{"tag":"li","lines":"291,293"}}],"payload":{"tag":"h6","lines":"289,290"}},{"content":"3.1.3.4 &#x5065;&#x5eb7;&#x68c0;&#x67e5;","children":[{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]<a href=\"https://asp.net/\">ASP.NET</a> Core &#x4e2d;&#x7684;&#x8fd0;&#x884c;&#x72b6;&#x51b5;&#x68c0;&#x67e5;: https://learn.microsoft.com/zh-cn/aspnet/core/host-and-deploy/health-checks","children":[],"payload":{"tag":"li","lines":"295,297"}}],"payload":{"tag":"h6","lines":"293,294"}},{"content":"3.1.3.5 gRPC&#x670d;&#x52a1;","children":[{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]<a href=\"https://asp.net/\">ASP.NET</a> Core &#x4e2d;&#x7684; gRPC: https://learn.microsoft.com/zh-cn/aspnet/core/grpc/","children":[],"payload":{"tag":"li","lines":"299,301"}}],"payload":{"tag":"h6","lines":"297,298"}},{"content":"3.1.3.6 SignalR&#x5b9e;&#x65f6;&#x901a;&#x4fe1;","children":[{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]<a href=\"https://asp.net/\">ASP.NET</a> Core SignalR: https://learn.microsoft.com/zh-cn/aspnet/core/signalr/","children":[],"payload":{"tag":"li","lines":"303,305"}}],"payload":{"tag":"h6","lines":"301,302"}}],"payload":{"tag":"h5","lines":"274,275"}}],"payload":{"tag":"h4","lines":"240,241"}},{"content":"3.2 &#x4e91;&#x539f;&#x751f;&#x4e0e;&#x5fae;&#x670d;&#x52a1;","children":[{"content":"3.2.1 &#x5bb9;&#x5668;&#x5316;&#x6280;&#x672f;","children":[{"content":"3.2.1.1 Docker&#x96c6;&#x6210;","children":[{"content":"&#x591a;&#x9636;&#x6bb5;&#x6784;&#x5efa;","children":[],"payload":{"tag":"li","lines":"311,312"}},{"content":"&#x955c;&#x50cf;&#x4f18;&#x5316;","children":[],"payload":{"tag":"li","lines":"312,313"}},{"content":"&#x5bb9;&#x5668;&#x5b89;&#x5168;","children":[],"payload":{"tag":"li","lines":"313,314"}},{"content":"&#x5065;&#x5eb7;&#x68c0;&#x67e5;","children":[],"payload":{"tag":"li","lines":"314,315"}},{"content":"&#x8d44;&#x6e90;&#x9650;&#x5236;","children":[],"payload":{"tag":"li","lines":"315,316"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;].NET &#x548c; Docker: https://learn.microsoft.com/zh-cn/dotnet/core/docker/","children":[],"payload":{"tag":"li","lines":"316,318"}}],"payload":{"tag":"h6","lines":"309,310"}}],"payload":{"tag":"h5","lines":"307,308"}},{"content":"3.2.2 &#x5fae;&#x670d;&#x52a1;&#x67b6;&#x6784;","children":[{"content":"3.2.2.1 &#x670d;&#x52a1;&#x901a;&#x4fe1;","children":[{"content":"HTTP RESTful API","children":[],"payload":{"tag":"li","lines":"322,323"}},{"content":"gRPC&#x9ad8;&#x6027;&#x80fd;&#x8c03;&#x7528;","children":[],"payload":{"tag":"li","lines":"323,324"}},{"content":"&#x6d88;&#x606f;&#x961f;&#x5217;&#x96c6;&#x6210;","children":[],"payload":{"tag":"li","lines":"324,325"}},{"content":"&#x670d;&#x52a1;&#x53d1;&#x73b0;","children":[],"payload":{"tag":"li","lines":"325,326"}},{"content":"&#x8d1f;&#x8f7d;&#x5747;&#x8861;","children":[],"payload":{"tag":"li","lines":"326,327"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;].NET &#x5fae;&#x670d;&#x52a1;: https://learn.microsoft.com/zh-cn/dotnet/architecture/microservices/","children":[],"payload":{"tag":"li","lines":"327,329"}}],"payload":{"tag":"h6","lines":"320,321"}}],"payload":{"tag":"h5","lines":"318,319"}},{"content":"3.2.3 .NET 8&#x7279;&#x5b9a;&#x4f18;&#x5316;","children":[{"content":"3.2.3.1 Native AOT","children":[{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;].NET Native AOT &#x90e8;&#x7f72;: https://learn.microsoft.com/zh-cn/dotnet/core/deploying/native-aot/","children":[],"payload":{"tag":"li","lines":"333,334"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;].NET 8 &#x4e2d;&#x7684;&#x65b0;&#x589e;&#x529f;&#x80fd;: https://learn.microsoft.com/zh-cn/dotnet/core/whats-new/dotnet-8","children":[],"payload":{"tag":"li","lines":"334,336"}}],"payload":{"tag":"h6","lines":"331,332"}}],"payload":{"tag":"h5","lines":"329,330"}}],"payload":{"tag":"h4","lines":"305,306"}},{"content":"3.3 &#x684c;&#x9762;/&#x8de8;&#x5e73;&#x53f0;/&#x79fb;&#x52a8;&#x5f00;&#x53d1;","children":[{"content":"3.3.1 &#x8de8;&#x5e73;&#x53f0;&#x684c;&#x9762;","children":[{"content":"3.3.1.1 .NET MAUI","children":[{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;].NET MAUI &#x6587;&#x6863;: https://learn.microsoft.com/zh-cn/dotnet/maui/","children":[],"payload":{"tag":"li","lines":"342,344"}}],"payload":{"tag":"h6","lines":"340,341"}}],"payload":{"tag":"h5","lines":"338,339"}},{"content":"3.3.2 Windows&#x684c;&#x9762;","children":[{"content":"3.3.2.1 Windows Forms","children":[{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]Windows Forms &#x6587;&#x6863;: https://learn.microsoft.com/zh-cn/dotnet/desktop/winforms/","children":[],"payload":{"tag":"li","lines":"348,350"}}],"payload":{"tag":"h6","lines":"346,347"}},{"content":"3.3.2.2 WPF","children":[{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]WPF &#x6587;&#x6863;: https://learn.microsoft.com/zh-cn/dotnet/desktop/wpf/","children":[],"payload":{"tag":"li","lines":"352,354"}}],"payload":{"tag":"h6","lines":"350,351"}}],"payload":{"tag":"h5","lines":"344,345"}}],"payload":{"tag":"h4","lines":"336,337"}},{"content":"3.4 &#x6570;&#x636e;&#x8bbf;&#x95ee;","children":[{"content":"3.4.1 ORM&#xff1a;Entity Framework Core 8","children":[{"content":"3.4.1.1 &#x6570;&#x636e;&#x5efa;&#x6a21;","children":[{"content":"Code First&#x65b9;&#x6cd5;","children":[],"payload":{"tag":"li","lines":"360,361"}},{"content":"&#x6570;&#x636e;&#x6ce8;&#x89e3;","children":[],"payload":{"tag":"li","lines":"361,362"}},{"content":"Fluent API&#x914d;&#x7f6e;","children":[],"payload":{"tag":"li","lines":"362,363"}},{"content":"&#x5173;&#x7cfb;&#x914d;&#x7f6e;","children":[],"payload":{"tag":"li","lines":"363,364"}},{"content":"&#x7ee7;&#x627f;&#x6620;&#x5c04;","children":[],"payload":{"tag":"li","lines":"364,365"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]&#x521b;&#x5efa;&#x6a21;&#x578b;: https://learn.microsoft.com/zh-cn/ef/core/modeling/","children":[],"payload":{"tag":"li","lines":"365,367"}}],"payload":{"tag":"h6","lines":"358,359"}},{"content":"3.4.1.2 &#x67e5;&#x8be2;&#x4f18;&#x5316;","children":[{"content":"LINQ&#x67e5;&#x8be2;&#x8f6c;&#x6362;","children":[],"payload":{"tag":"li","lines":"369,370"}},{"content":"&#x5ef6;&#x8fdf;&#x52a0;&#x8f7d;","children":[],"payload":{"tag":"li","lines":"370,371"}},{"content":"&#x9884;&#x5148;&#x52a0;&#x8f7d;","children":[],"payload":{"tag":"li","lines":"371,372"}},{"content":"&#x663e;&#x5f0f;&#x52a0;&#x8f7d;","children":[],"payload":{"tag":"li","lines":"372,373"}},{"content":"&#x539f;&#x59cb;SQL&#x67e5;&#x8be2;","children":[],"payload":{"tag":"li","lines":"373,374"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]&#x67e5;&#x8be2;&#x6570;&#x636e;: https://learn.microsoft.com/zh-cn/ef/core/querying/","children":[],"payload":{"tag":"li","lines":"374,376"}}],"payload":{"tag":"h6","lines":"367,368"}}],"payload":{"tag":"h5","lines":"356,357"}},{"content":"3.4.2 NoSQL&#x6570;&#x636e;&#x5e93;","children":[{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;].NET &#x5e94;&#x7528;&#x7a0b;&#x5e8f;&#x7684; Azure &#x6570;&#x636e;&#x5b58;&#x50a8;&#x9009;&#x9879;: https://learn.microsoft.com/zh-cn/dotnet/architecture/cloud-native/data-options","children":[],"payload":{"tag":"li","lines":"378,380"}}],"payload":{"tag":"h5","lines":"376,377"}}],"payload":{"tag":"h4","lines":"354,355"}}],"payload":{"tag":"h3","lines":"238,239"}},{"content":"4. &#x8fdb;&#x9636;&#x4e0e;&#x7cbe;&#x901a;","children":[{"content":"4.1 &#x6027;&#x80fd;&#x4f18;&#x5316;","children":[{"content":"4.1.1 &#x8bca;&#x65ad;&#x5de5;&#x5177;","children":[{"content":"4.1.1.1 &#x6027;&#x80fd;&#x5206;&#x6790;&#x5668;","children":[{"content":"dotnet-counters&#x6027;&#x80fd;&#x8ba1;&#x6570;&#x5668;","children":[],"payload":{"tag":"li","lines":"388,389"}},{"content":"dotnet-trace&#x4e8b;&#x4ef6;&#x8ddf;&#x8e2a;","children":[],"payload":{"tag":"li","lines":"389,390"}},{"content":"dotnet-dump&#x5185;&#x5b58;&#x8f6c;&#x50a8;","children":[],"payload":{"tag":"li","lines":"390,391"}},{"content":"Visual Studio&#x8bca;&#x65ad;&#x5de5;&#x5177;","children":[],"payload":{"tag":"li","lines":"391,392"}},{"content":"&#x5e94;&#x7528;&#x5185;&#x6307;&#x6807;&#x6536;&#x96c6;","children":[],"payload":{"tag":"li","lines":"392,393"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;].NET &#x8bca;&#x65ad;&#x5de5;&#x5177;: https://learn.microsoft.com/zh-cn/dotnet/core/diagnostics/","children":[],"payload":{"tag":"li","lines":"393,394"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;].NET &#x8bca;&#x65ad;&#x6559;&#x7a0b;: https://learn.microsoft.com/zh-cn/dotnet/core/diagnostics/","children":[],"payload":{"tag":"li","lines":"394,396"}}],"payload":{"tag":"h6","lines":"386,387"}}],"payload":{"tag":"h5","lines":"384,385"}},{"content":"4.1.2 &#x57fa;&#x51c6;&#x6d4b;&#x8bd5;","children":[{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]BenchmarkDotNet: https://learn.microsoft.com/zh-cn/dotnet/core/testing/benchmarking","children":[],"payload":{"tag":"li","lines":"398,399"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;].NET &#x6027;&#x80fd;: https://learn.microsoft.com/zh-cn/dotnet/core/performance/","children":[],"payload":{"tag":"li","lines":"399,401"}}],"payload":{"tag":"h5","lines":"396,397"}}],"payload":{"tag":"h4","lines":"382,383"}},{"content":"4.2 &#x67b6;&#x6784;&#x6a21;&#x5f0f;","children":[{"content":"4.2.1 &#x73b0;&#x4ee3;&#x67b6;&#x6784;&#x98ce;&#x683c;","children":[{"content":"4.2.1.1 &#x6e05;&#x6d01;&#x67b6;&#x6784;","children":[{"content":"&#x4f9d;&#x8d56;&#x5012;&#x7f6e;&#x539f;&#x5219;","children":[],"payload":{"tag":"li","lines":"407,408"}},{"content":"&#x9886;&#x57df;&#x9a71;&#x52a8;&#x8bbe;&#x8ba1;","children":[],"payload":{"tag":"li","lines":"408,409"}},{"content":"&#x7528;&#x4f8b;&#x9a71;&#x52a8;&#x5f00;&#x53d1;","children":[],"payload":{"tag":"li","lines":"409,410"}},{"content":"&#x63a5;&#x53e3;&#x9002;&#x914d;&#x5668;","children":[],"payload":{"tag":"li","lines":"410,411"}},{"content":"&#x6846;&#x67b6;&#x72ec;&#x7acb;&#x6027;","children":[],"payload":{"tag":"li","lines":"411,412"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]&#x6e05;&#x6d01;&#x67b6;&#x6784;: https://learn.microsoft.com/zh-cn/dotnet/architecture/modern-web-apps-azure/common-web-application-architectures#clean-architecture","children":[],"payload":{"tag":"li","lines":"412,413"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;].NET &#x5e94;&#x7528;&#x7a0b;&#x5e8f;&#x67b6;&#x6784;&#x6307;&#x5357;: https://learn.microsoft.com/zh-cn/dotnet/architecture/","children":[],"payload":{"tag":"li","lines":"413,415"}}],"payload":{"tag":"h6","lines":"405,406"}}],"payload":{"tag":"h5","lines":"403,404"}}],"payload":{"tag":"h4","lines":"401,402"}},{"content":"4.3 &#x6d4b;&#x8bd5;","children":[{"content":"4.3.1 &#x5355;&#x5143;&#x6d4b;&#x8bd5;","children":[{"content":"4.3.1.1 xUnit&#x6846;&#x67b6;","children":[{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]&#x4f7f;&#x7528; xUnit &#x8fdb;&#x884c;&#x5355;&#x5143;&#x6d4b;&#x8bd5;: https://learn.microsoft.com/zh-cn/dotnet/core/testing/unit-testing-with-dotnet-test","children":[],"payload":{"tag":"li","lines":"421,422"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]&#x5355;&#x5143;&#x6d4b;&#x8bd5; C#: https://learn.microsoft.com/zh-cn/dotnet/core/testing/unit-testing-with-dotnet-test","children":[],"payload":{"tag":"li","lines":"422,423"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;].NET &#x4e2d;&#x7684;&#x6d4b;&#x8bd5;: https://learn.microsoft.com/zh-cn/dotnet/core/testing/","children":[],"payload":{"tag":"li","lines":"423,425"}}],"payload":{"tag":"h6","lines":"419,420"}}],"payload":{"tag":"h5","lines":"417,418"}}],"payload":{"tag":"h4","lines":"415,416"}},{"content":"4.4 &#x5b89;&#x5168;","children":[{"content":"4.4.1 &#x5e94;&#x7528;&#x5b89;&#x5168;","children":[{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]<a href=\"https://asp.net/\">ASP.NET</a> Core &#x5b89;&#x5168;&#x6027;: https://learn.microsoft.com/zh-cn/aspnet/core/security/","children":[],"payload":{"tag":"li","lines":"429,430"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;].NET &#x5b89;&#x5168;&#x6027;: https://learn.microsoft.com/zh-cn/dotnet/standard/security/","children":[],"payload":{"tag":"li","lines":"430,432"}}],"payload":{"tag":"h5","lines":"427,428"}}],"payload":{"tag":"h4","lines":"425,426"}}],"payload":{"tag":"h3","lines":"380,381"}},{"content":"5. &#x751f;&#x6001;&#x7cfb;&#x7edf;&#x4e0e;&#x5de5;&#x5177;","children":[{"content":"5.1 &#x5f00;&#x53d1;&#x5de5;&#x5177;&#x94fe;","children":[{"content":"5.1.1 &#x547d;&#x4ee4;&#x884c;&#x5de5;&#x5177;","children":[{"content":"5.1.1.1 dotnet CLI&#x547d;&#x4ee4;","children":[{"content":"dotnet new&#x9879;&#x76ee;&#x6a21;&#x677f;","children":[],"payload":{"tag":"li","lines":"440,441"}},{"content":"dotnet build&#x7f16;&#x8bd1;&#x6784;&#x5efa;","children":[],"payload":{"tag":"li","lines":"441,442"}},{"content":"dotnet run&#x8fd0;&#x884c;&#x5e94;&#x7528;","children":[],"payload":{"tag":"li","lines":"442,443"}},{"content":"dotnet test&#x6d4b;&#x8bd5;&#x6267;&#x884c;","children":[],"payload":{"tag":"li","lines":"443,444"}},{"content":"dotnet publish&#x53d1;&#x5e03;&#x90e8;&#x7f72;","children":[],"payload":{"tag":"li","lines":"444,445"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;].NET CLI: https://learn.microsoft.com/zh-cn/dotnet/core/tools/","children":[],"payload":{"tag":"li","lines":"445,447"}}],"payload":{"tag":"h6","lines":"438,439"}}],"payload":{"tag":"h5","lines":"436,437"}},{"content":"5.1.2 &#x5305;&#x7ba1;&#x7406;","children":[{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]NuGet &#x6587;&#x6863;: https://learn.microsoft.com/zh-cn/nuget/","children":[],"payload":{"tag":"li","lines":"449,451"}}],"payload":{"tag":"h5","lines":"447,448"}},{"content":"5.1.3 &#x4ee3;&#x7801;&#x8d28;&#x91cf;&#x5de5;&#x5177;","children":[{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;].NET &#x4ee3;&#x7801;&#x5206;&#x6790;: https://learn.microsoft.com/zh-cn/dotnet/fundamentals/code-analysis/overview","children":[],"payload":{"tag":"li","lines":"453,455"}}],"payload":{"tag":"h5","lines":"451,452"}}],"payload":{"tag":"h4","lines":"434,435"}},{"content":"5.2 &#x7248;&#x672c;&#x63a7;&#x5236;","children":[{"content":"5.2.1 Git&#x57fa;&#x7840;","children":[{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]Git &#x548c; GitHub &#x5b66;&#x4e60;&#x8def;&#x5f84;: https://learn.microsoft.com/zh-cn/training/paths/git-github/","children":[],"payload":{"tag":"li","lines":"459,461"}}],"payload":{"tag":"h5","lines":"457,458"}}],"payload":{"tag":"h4","lines":"455,456"}},{"content":"5.3 CI/CD","children":[{"content":"5.3.1 GitHub Actions","children":[{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]GitHub Actions &#x6587;&#x6863;: https://learn.microsoft.com/zh-cn/azure/developer/github/","children":[],"payload":{"tag":"li","lines":"465,467"}}],"payload":{"tag":"h5","lines":"463,464"}},{"content":"5.3.2 Azure DevOps Pipelines","children":[{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]Azure Pipelines &#x6587;&#x6863;: https://learn.microsoft.com/zh-cn/azure/devops/pipelines/","children":[],"payload":{"tag":"li","lines":"469,470"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;].NET &#x5e94;&#x7528;&#x7a0b;&#x5e8f;&#x7684; DevOps: https://learn.microsoft.com/zh-cn/dotnet/architecture/devops-for-aspnet-developers/","children":[],"payload":{"tag":"li","lines":"470,472"}}],"payload":{"tag":"h5","lines":"467,468"}}],"payload":{"tag":"h4","lines":"461,462"}},{"content":"5.4 &#x8c03;&#x8bd5;&#x6280;&#x5de7;","children":[{"content":"5.4.1 &#x5f00;&#x53d1;&#x73af;&#x5883;&#x8c03;&#x8bd5;","children":[{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;]&#x5728; Visual Studio &#x4e2d;&#x8fdb;&#x884c;&#x8c03;&#x8bd5;: https://learn.microsoft.com/zh-cn/visualstudio/debugger/","children":[],"payload":{"tag":"li","lines":"476,477"}},{"content":"&#x1f517; [&#x5b98;&#x65b9;&#x6587;&#x6863;].NET &#x8c03;&#x8bd5;: https://learn.microsoft.com/zh-cn/dotnet/core/diagnostics/debugging","children":[],"payload":{"tag":"li","lines":"477,479"}}],"payload":{"tag":"h5","lines":"474,475"}}],"payload":{"tag":"h4","lines":"472,473"}}],"payload":{"tag":"h3","lines":"432,433"}}],"payload":{"tag":"h2","lines":"0,1"}},{"content":"WPS&#x601d;&#x7ef4;&#x5bfc;&#x56fe;&#x4f7f;&#x7528;&#x8bf4;&#x660e;","children":[{"content":"&#x5bfc;&#x5165;&#x65b9;&#x6cd5;&#xff1a;","children":[{"content":"1. &#x6253;&#x5f00;WPS Office","children":[],"payload":{"tag":"li","lines":"483,484","listIndex":1}},{"content":"2. &#x9009;&#x62e9;&quot;&#x65b0;&#x5efa;&quot; &#x2192; &quot;&#x601d;&#x7ef4;&#x5bfc;&#x56fe;&quot;","children":[],"payload":{"tag":"li","lines":"484,485","listIndex":2}},{"content":"3. &#x9009;&#x62e9;&quot;&#x5bfc;&#x5165;&quot; &#x2192; &quot;Markdown&#x683c;&#x5f0f;&quot;","children":[],"payload":{"tag":"li","lines":"485,486","listIndex":3}},{"content":"4. &#x5c06;&#x4e0a;&#x8ff0;&#x5185;&#x5bb9;&#x7c98;&#x8d34;&#x5230;&#x5bfc;&#x5165;&#x6846;&#x4e2d;","children":[],"payload":{"tag":"li","lines":"486,487","listIndex":4}},{"content":"5. &#x7cfb;&#x7edf;&#x4f1a;&#x81ea;&#x52a8;&#x751f;&#x6210;&#x601d;&#x7ef4;&#x5bfc;&#x56fe;&#x7ed3;&#x6784;","children":[],"payload":{"tag":"li","lines":"487,489","listIndex":5}}],"payload":{"tag":"h3","lines":"481,482"}},{"content":"&#x94fe;&#x63a5;&#x4f7f;&#x7528;&#x8bf4;&#x660e;&#xff1a;","children":[{"content":"&#x1f517; &#x7b26;&#x53f7;&#x8868;&#x793a;&#x5b98;&#x65b9;&#x6587;&#x6863;&#x94fe;&#x63a5;","children":[],"payload":{"tag":"li","lines":"491,492"}},{"content":"&#x5728;WPS&#x4e2d;&#xff0c;&#x94fe;&#x63a5;&#x4f1a;&#x663e;&#x793a;&#x4e3a;&#x53ef;&#x70b9;&#x51fb;&#x7684;&#x8d85;&#x94fe;&#x63a5;","children":[],"payload":{"tag":"li","lines":"492,493"}},{"content":"&#x70b9;&#x51fb;&#x94fe;&#x63a5;&#x53ef;&#x76f4;&#x63a5;&#x8df3;&#x8f6c;&#x5230;&#x5bf9;&#x5e94;&#x7684;Microsoft Learn&#x5b98;&#x65b9;&#x6587;&#x6863;","children":[],"payload":{"tag":"li","lines":"493,494"}},{"content":"&#x5efa;&#x8bae;&#x5728;&#x6709;&#x7f51;&#x7edc;&#x8fde;&#x63a5;&#x7684;&#x73af;&#x5883;&#x4e0b;&#x4f7f;&#x7528;&#xff0c;&#x4ee5;&#x4fbf;&#x8bbf;&#x95ee;&#x5728;&#x7ebf;&#x6587;&#x6863;","children":[],"payload":{"tag":"li","lines":"494,496"}}],"payload":{"tag":"h3","lines":"489,490"}},{"content":"&#x5b66;&#x4e60;&#x8fdb;&#x5ea6;&#x6807;&#x8bb0;&#x5efa;&#x8bae;&#xff1a;","children":[{"content":"&#x2705; &#x5df2;&#x5b8c;&#x6210;","children":[],"payload":{"tag":"li","lines":"498,499"}},{"content":"&#x1f504; &#x8fdb;&#x884c;&#x4e2d;","children":[],"payload":{"tag":"li","lines":"499,500"}},{"content":"&#x23f3; &#x5f85;&#x5f00;&#x59cb;","children":[],"payload":{"tag":"li","lines":"500,501"}},{"content":"&#x1f4a1; &#x91cd;&#x70b9;&#x5185;&#x5bb9;","children":[],"payload":{"tag":"li","lines":"501,502"}},{"content":"&#x2b50; &#x6838;&#x5fc3;&#x77e5;&#x8bc6;&#x70b9;","children":[],"payload":{"tag":"li","lines":"502,504"}}],"payload":{"tag":"h3","lines":"496,497"}},{"content":"&#x989c;&#x8272;&#x7f16;&#x7801;&#x5efa;&#x8bae;&#xff1a;","children":[{"content":"<strong>&#x84dd;&#x8272;</strong>&#xff1a;&#x57fa;&#x7840;&#x6982;&#x5ff5;&#x548c;&#x5165;&#x95e8;&#x5185;&#x5bb9;","children":[],"payload":{"tag":"li","lines":"506,507"}},{"content":"<strong>&#x7eff;&#x8272;</strong>&#xff1a;&#x6838;&#x5fc3;&#x6280;&#x672f;&#x548c;&#x7f16;&#x7a0b;&#x8bed;&#x8a00;","children":[],"payload":{"tag":"li","lines":"507,508"}},{"content":"<strong>&#x6a59;&#x8272;</strong>&#xff1a;&#x4e13;&#x4e1a;&#x65b9;&#x5411;&#x548c;&#x5e94;&#x7528;&#x5f00;&#x53d1;","children":[],"payload":{"tag":"li","lines":"508,509"}},{"content":"<strong>&#x7d2b;&#x8272;</strong>&#xff1a;&#x8fdb;&#x9636;&#x548c;&#x67b6;&#x6784;&#x5185;&#x5bb9;","children":[],"payload":{"tag":"li","lines":"509,510"}},{"content":"<strong>&#x7ea2;&#x8272;</strong>&#xff1a;&#x5de5;&#x5177;&#x548c;&#x751f;&#x6001;&#x7cfb;&#x7edf;","children":[],"payload":{"tag":"li","lines":"510,512"}}],"payload":{"tag":"h3","lines":"504,505"}}],"payload":{"tag":"h2","lines":"479,480"}}]},{})</script>
</body>
</html>
